/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sv.gob.presidencia.cultura.espacios.ficha;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import sv.gob.presidencia.cultura.espacios.busquedas.BusquedasGenLocal;
import sv.gob.presidencia.cultura.espacios.entidades.CArte;
import sv.gob.presidencia.cultura.espacios.entidades.CCategoriaEspacio;
import sv.gob.presidencia.cultura.espacios.entidades.CColeccionFondo;
import sv.gob.presidencia.cultura.espacios.entidades.Departamento;
import sv.gob.presidencia.cultura.espacios.entidades.EspacioColeccio;
import sv.gob.presidencia.cultura.espacios.entidades.EspacioculturalInfraestructura;
import sv.gob.presidencia.cultura.espacios.entidades.Infraestructura;
import sv.gob.presidencia.cultura.espacios.entidades.Municipio;
import sv.gob.presidencia.cultura.espacios.entidades.Servicios;
import sv.gob.presidencia.cultura.espacios.entidades.TipoEspacio;

/**
 *
 * @author edgardo
 */
@ManagedBean
@ViewScoped
public class FichaEspacioCulturaBean implements Serializable{
    @EJB
    private BusquedasGenLocal busquedasGen;
    
    
    private String nomEspacio= "";
    private String Secultura="Si";
    private String otro = "Mun";
    private boolean prv = false;
    private boolean pub = false;
    private boolean sec = false;
    private boolean noSec = false;
    private boolean otr = false;
    private String sitLegal = null;
    private String tipoArte = "";
    private String foroinf = "";
    private String tipoFor = "";
    
    private String colfon = "";
    private String tipoColFondo = "";
    private String digital = "";
    
    private String inf = "";
    private String capacidad = "";
    private String unidad = "";
    
    private String nomPopular= "";
    private String dirExacta= "";
    private String AdminEspacio= "";
    private String dia= "";
    private String mes= "";
    private String anio= "";
    private String dscOrigen= "";
    private String dscGral= "";
    private String horaYTarif= "";
    private String contacto= "";
    private String telefono= "";
    private String email= "";
    private String url= "";
    private String facebook= "";
    private String twitter= "";
    private String recopilo= "";
    private String ingreso= "";
    private String dptoSelected;
    
    
    private List<TblColecion> lstColecion = new ArrayList<TblColecion>();
    private List<TblTipo> lstTipo = new ArrayList<TblTipo>();
    private TblColecion newCol;
    private TblTipo newTipo;
    private String colSelect = null;
    private String tipoSelect = null;
    private List<Departamento> lstDpto; 
    private Map<String,String> mapDpto = new HashMap<String, String>(); 
    private String mncpSelected;
    private List<Municipio> lstMncp; 
    private Map<String,String> mapMncp = new HashMap<String, String>(); 
    private List<CCategoriaEspacio> lstCat; 
    private Map<String,String> mapCat = new HashMap<String, String>(); 
    private String catSelected;
    private String tipoSelected;
    private String cArteSelected;
    private String serviciosSelected;
    private String colselected;
    private String infraestructuraSelected;
    private List<TipoEspacio> lstTipEsp; 
    private Map<String,String> mapTipEsp = new HashMap<String, String>(); 
    private Map<String,String> mapCArte = new HashMap<String, String>(); 
    private Map<String,String> mapCColeccionFondo = new HashMap<String, String>(); 
    private Map<String,String> mapInfraestructura = new HashMap<String, String>(); 
    private Map<String,String> mapServicios = new HashMap<String, String>(); 
    private List <EspacioColeccio> lstCol = new ArrayList<EspacioColeccio>();
    private List <EspacioculturalInfraestructura> lstInf = new ArrayList<EspacioculturalInfraestructura>();
    private List<CArte> lstCArte;
    private List<Servicios> lstServicios;
    private List<CColeccionFondo> lstCColeccionFondo;
    private List<Infraestructura> lstInfraestructura;
    //dddddddddddddddd
    private Map<String,Infraestructura> mapInfraestructura2 = new HashMap<String, Infraestructura>();
    private Infraestructura infraestructuraSelected2 = new Infraestructura();

    public Map<String, Infraestructura> getMapInfraestructura2() {
        return mapInfraestructura2;
    }

    public void setMapInfraestructura2(Map<String, Infraestructura> mapInfraestructura2) {
        this.mapInfraestructura2 = mapInfraestructura2;
    }

    public Infraestructura getInfraestructuraSelected2() {
        return infraestructuraSelected2;
    }

    public void setInfraestructuraSelected2(Infraestructura infraestructuraSelected2) {
        this.infraestructuraSelected2 = infraestructuraSelected2;
    }
    
    public void prueba(){
        System.out.println("prueba");
    }
    
    //dddddddddddddddddddd
     // <
    public String getNomEspacio() {
        return nomEspacio;
    }

    public String getDptoSelected() {
        return dptoSelected;
    }

    public String getcArteSelected() {
        return cArteSelected;
    }

    public void setcArteSelected(String cArteSelected) {
        this.cArteSelected = cArteSelected;
    }

    public String getServiciosSelected() {
        return serviciosSelected;
    }

    public void setServiciosSelected(String serviciosSelected) {
        this.serviciosSelected = serviciosSelected;
    }

    public String getColselected() {
        return colselected;
    }

    public void setColselected(String colselected) {
        this.colselected = colselected;
    }
    
    public String getInfraestructuraSelected() {
        return infraestructuraSelected;
    }

    public void setInfraestructuraSelected(String infraestructuraSelected) {
        this.infraestructuraSelected = infraestructuraSelected;
    }

    public Map<String, String> getMapCArte() {
        return mapCArte;
    }

    public void setMapCArte(Map<String, String> mapCArte) {
        this.mapCArte = mapCArte;
    }

    public Map<String, String> getMapCColeccionFondo() {
        return mapCColeccionFondo;
    }

    public void setMapCColeccionFondo(Map<String, String> mapCColeccionFondo) {
        this.mapCColeccionFondo = mapCColeccionFondo;
    }

    public Map<String, String> getMapInfraestructura() {
        return mapInfraestructura;
    }

    public void setMapInfraestructura(Map<String, String> mapInfraestructura) {
        this.mapInfraestructura = mapInfraestructura;
    }

    public Map<String, String> getMapServicios() {
        return mapServicios;
    }

    public void setMapServicios(Map<String, String> mapServicios) {
        this.mapServicios = mapServicios;
    }

    public List<CArte> getLstCArte() {
        return lstCArte;
    }

    public void setLstCArte(List<CArte> lstCArte) {
        this.lstCArte = lstCArte;
    }

    public List<Servicios> getLstServicios() {
        return lstServicios;
    }

    public void setLstServicios(List<Servicios> lstServicios) {
        this.lstServicios = lstServicios;
    }

    public List<CColeccionFondo> getLstCColeccionFondo() {
        return lstCColeccionFondo;
    }

    public void setLstCColeccionFondo(List<CColeccionFondo> lstCColeccionFondo) {
        this.lstCColeccionFondo = lstCColeccionFondo;
    }

    public List<Infraestructura> getLstInfraestructura() {
        return lstInfraestructura;
    }

    public void setLstInfraestructura(List<Infraestructura> lstInfraestructura) {
        this.lstInfraestructura = lstInfraestructura;
    }

    public TblColecion getNewCol() {
        return newCol;
    }

    public String getInf() {
        return inf;
    }

    public void setInf(String inf) {
        this.inf = inf;
    }

    public String getCapacidad() {
        return capacidad;
    }

    public void setCapacidad(String capacidad) {
        this.capacidad = capacidad;
    }

    public String getUnidad() {
        return unidad;
    }

    public void setUnidad(String unidad) {
        this.unidad = unidad;
    }

    public void setNewCol(TblColecion newCol) {
        this.newCol = newCol;
    }

    public List<EspacioColeccio> getLstCol() {
        return lstCol;
    }

    public void setLstCol(List<EspacioColeccio> lstCol) {
        this.lstCol = lstCol;
    }

    public String getTipoArte() {
        return tipoArte;
    }

    public void setTipoArte(String tipoArte) {
        this.tipoArte = tipoArte;
    }

    public String getForoinf() {
        return foroinf;
    }

    public void setForoinf(String foroinf) {
        this.foroinf = foroinf;
    }

    public String getTipoFor() {
        return tipoFor;
    }

    public String getTipoColFondo() {
        return tipoColFondo;
    }

    public void setTipoColFondo(String tipoColFondo) {
        this.tipoColFondo = tipoColFondo;
    }

    public String getDigital() {
        return digital;
    }

    public void setDigital(String Digital) {
        this.digital = Digital;
    }

    public void setTipoFor(String tipoFor) {
        this.tipoFor = tipoFor;
    }

    public String getColSelect() {
        return colSelect;
    }

    public String getColfon() {
        return colfon;
    }

    public void setColfon(String colfon) {
        this.colfon = colfon;
    }

    public void setColSelect(String colSelect) {
        this.colSelect = colSelect;
    }

    public List<EspacioculturalInfraestructura> getLstInf() {
        return lstInf;
    }

    public void setLstInf(List<EspacioculturalInfraestructura> lstInf) {
        this.lstInf = lstInf;
    }

    

    public String getSitLegal() {
        return sitLegal;
    }

    public String getOtro() {
        return otro;
    }

    public void setOtro(String otro) {
        this.otro = otro;
    }

    public void setSitLegal(String SitLegal) {
        this.sitLegal = SitLegal;
    }

    public List<TblColecion> getLstColecion() {
        return lstColecion;
    }

    public void setLstColecion(List<TblColecion> lstColecion) {
        this.lstColecion = lstColecion;
    }

    public Map<String, String> getMapDpto() {
        return mapDpto;
    }

    public void setMapDpto(Map<String, String> mapDpto) {
        this.mapDpto = mapDpto;
    }

    public String getSecultura() {
        return Secultura;
    }

    public void setSecultura(String Secultura) {
        this.Secultura = Secultura;
    }

    public Map<String, String> getMapMncp() {
        return mapMncp;
    }

    public void setMapMncp(Map<String, String> mapMncp) {
        this.mapMncp = mapMncp;
    }

    public String getMncpSelected() {
        return mncpSelected;
    }

    public void setMncpSelected(String mncpSelected) {
        this.mncpSelected = mncpSelected;
    }

     public String getTipoSelected() {
        return tipoSelected;
    }

    public void setTipoSelected(String tipoSelected) {
        this.tipoSelected = tipoSelected;
    }
    
    public List<Municipio> getLstMncp() {
        return lstMncp;
    }

    public void setLstMncp(List<Municipio> lstMncp) {
        this.lstMncp = lstMncp;
    }

    public void setDptoSelected(String dptoSelected) {
        this.dptoSelected = dptoSelected;
    }

    
    public void setNomEspacio(String nomEspacio) {
        this.nomEspacio = nomEspacio;
    }

    public String getNomPopular() {
        return nomPopular;
    }

    public void setNomPopular(String nomPopular) {
        this.nomPopular = nomPopular;
    }

    public String getDirExacta() {
        return dirExacta;
    }

    public void setDirExacta(String dirExacta) {
        this.dirExacta = dirExacta;
    }

    public String getAdminEspacio() {
        return AdminEspacio;
    }

    public void setAdminEspacio(String AdminEspacio) {
        this.AdminEspacio = AdminEspacio;
    }

    public String getDia() {
        return dia;
    }

    public void setDia(String dia) {
        this.dia = dia;
    }

    public String getMes() {
        return mes;
    }

    public void setMes(String mes) {
        this.mes = mes;
    }

    public String getAnio() {
        return anio;
    }

    public void setAnio(String anio) {
        this.anio = anio;
    }

    public String getDscOrigen() {
        return dscOrigen;
    }

    public void setDscOrigen(String dscOrigen) {
        this.dscOrigen = dscOrigen;
    }

    public String getDscGral() {
        return dscGral;
    }

    public void setDscGral(String dscGral) {
        this.dscGral = dscGral;
    }

    public String getHoraYTarif() {
        return horaYTarif;
    }

    public void setHoraYTarif(String horaYTarif) {
        this.horaYTarif = horaYTarif;
    }

    public String getContacto() {
        return contacto;
    }

    public void setContacto(String contacto) {
        this.contacto = contacto;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getFacebook() {
        return facebook;
    }

    public void setFacebook(String facebook) {
        this.facebook = facebook;
    }

    public String getTwitter() {
        return twitter;
    }

    public void setTwitter(String twitter) {
        this.twitter = twitter;
    }

    public String getRecopilo() {
        return recopilo;
    }

    public void setRecopilo(String recopilo) {
        this.recopilo = recopilo;
    }

    public String getIngreso() {
        return ingreso;
    }

    public void setIngreso(String ingreso) {
        this.ingreso = ingreso;
    }

    public List<Departamento> getLstDpto() {
        return lstDpto;
    }

    public void setLstDpto(List<Departamento> lstDpto) {
        this.lstDpto = lstDpto;
    }

    public boolean isPrv() {
        return prv;
    }

    public void setPrv(boolean prv) {
        this.prv = prv;
    }

    public boolean isPub() {
        return pub;
    }

    public void setPub(boolean pub) {
        this.pub = pub;
    }

    public boolean isSec() {
        return sec;
    }

    public void setSec(boolean sec) {
        this.sec = sec;
    }

    public boolean isNoSec() {
        return noSec;
    }

    public void setNoSec(boolean noSec) {
        this.noSec = noSec;
    }

    public boolean isOtr() {
        return otr;
    }

    public void setOtr(boolean otr) {
        this.otr = otr;
    }
    public BusquedasGenLocal getBusquedasGen() {
        return busquedasGen;
    }

    public void setBusquedasGen(BusquedasGenLocal busquedasGen) {
        this.busquedasGen = busquedasGen;
    }

    public List<TblTipo> getLstTipo() {
        return lstTipo;
    }

    public void setLstTipo(List<TblTipo> lstTipo) {
        this.lstTipo = lstTipo;
    }

    public List<CCategoriaEspacio> getLstCat() {
        return lstCat;
    }

    public void setLstCat(List<CCategoriaEspacio> lstCat) {
        this.lstCat = lstCat;
    }

    public Map<String, String> getMapCat() {
        return mapCat;
    }

    public void setMapCat(Map<String, String> mapCat) {
        this.mapCat = mapCat;
    }

    public String getCatSelected() {
        return catSelected;
    }

    public void setCatSelected(String catSelected) {
        this.catSelected = catSelected;
    }

    public List<TipoEspacio> getLstTipEsp() {
        return lstTipEsp;
    }

    public void setLstTipEsp(List<TipoEspacio> lstTipEsp) {
        this.lstTipEsp = lstTipEsp;
    }

    public Map<String, String> getMapTipEsp() {
        return mapTipEsp;
    }

    public void setMapTipEsp(Map<String, String> mapTipEsp) {
        this.mapTipEsp = mapTipEsp;
    }

    public TblTipo getNewTipo() {
        return newTipo;
    }

    public void setNewTipo(TblTipo newTipo) {
        this.newTipo = newTipo;
    }

    public String getTipoSelect() {
        return tipoSelect;
    }

    public void setTipoSelect(String tipoSelect) {
        this.tipoSelect = tipoSelect;
    }
    /**
     * Creates a new instance of FichaEspacioCulturaBean
     */
    public FichaEspacioCulturaBean() {
    }
    @PostConstruct
    public void init(){
        try {
            cargarCArte();
            cargarCColeccionFondo();
            cargarInfraestructura();
            cargarServicios();
            cargarDepto();
            cargarCategorias();
        } catch (Exception ex) {
            Logger.getLogger(FichaEspacioCulturaBean.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    public void cargarDepto(){
        try {
            lstDpto = busquedasGen.buscarDepartamento(new HashMap());
                for (Departamento departamento : lstDpto) {
                    String d = departamento.getNombreDepartamento();
                    mapDpto.put(d, d);        
                }
        } catch (Exception ex) {
            Logger.getLogger(FichaEspacioCulturaBean.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    public void cargarCArte(){
        try {
            lstCArte = busquedasGen.buscarCArte(new HashMap());
                for (CArte arte : lstCArte) {
                    String n = arte.getNombreCArte();
                    mapCArte.put(n, n);        
                }
        } catch (Exception ex) {
            Logger.getLogger(FichaEspacioCulturaBean.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    public void cargarServicios(){
        try {
            lstServicios = busquedasGen.buscarServicios(new HashMap());
                for (Servicios servicios : lstServicios) {
                    String d = servicios.getNombreServicio();
                    mapDpto.put(d, d);        
                }
        } catch (Exception ex) {
            Logger.getLogger(FichaEspacioCulturaBean.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    public void cargarCColeccionFondo(){
        try {
            lstCColeccionFondo = busquedasGen.buscarCColeccionFondo(new HashMap());
                for (CColeccionFondo cColeccionFondo : lstCColeccionFondo) {
                    String d = cColeccionFondo.getTipoCColeccionFondo();
                    mapCColeccionFondo.put(d, d);        
                }
        } catch (Exception ex) {
            Logger.getLogger(FichaEspacioCulturaBean.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    public void cargarInfraestructura(){
        try {
            lstInfraestructura = busquedasGen.buscarInfraestructura(new HashMap());
                for (Infraestructura infraestructura : lstInfraestructura) {
                    String d = infraestructura.getNombreInfraestructura();
                    mapInfraestructura.put(d, d);        
                    mapInfraestructura2.put(d, infraestructura);
                }
        } catch (Exception ex) {
            Logger.getLogger(FichaEspacioCulturaBean.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    public void cargarMunicipio(){
        try {
            Map param = new HashMap();
            param.put("nomDpto",dptoSelected);
            lstMncp = busquedasGen.buscarMunicipio(param);
            mapMncp.clear();
            for (Municipio mncp : lstMncp) {
                mapMncp.put(mncp.getNombreMunicipio(),mncp.getNombreMunicipio());
            }
        } catch (Exception ex) {
            Logger.getLogger(FichaEspacioCulturaBean.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    public void cargarCategorias(){
        try {
            lstCat = busquedasGen.buscarCatEsp(new HashMap());
            for (CCategoriaEspacio cat : lstCat) {
                mapCat.put(cat.getNombreCCategoria(),cat.getNombreCCategoria());
            }
        } catch (Exception ex) {
            Logger.getLogger(FichaEspacioCulturaBean.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    public void cargarTipo(){
        try {
            System.out.println(tipoFor + tipoArte + foroinf);
            Map param = new HashMap();
            param.put("nomcat",catSelected);
            lstTipEsp = busquedasGen.buscarTipoEsp(param);
            mapTipEsp.clear();
            for (TipoEspacio te : lstTipEsp) {
                System.out.println(te.getNombreTipoEspacio());
                mapTipEsp.put(te.getNombreTipoEspacio(),te.getNombreTipoEspacio());
            }
        } catch (Exception ex) {
            Logger.getLogger(FichaEspacioCulturaBean.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    public void prvpub(){
            prv = false;
            pub = false;
            sec = false;
            noSec = false;
            otr = false;
        if(sitLegal.compareTo("Prv")==0){
            prv = true;
            pub = false;
            sec = false;
            noSec = false;
            otr = false;
            
        } else if (sitLegal.compareTo("Pub")==0){
            pub = true;
            prv = false;
            sec = false;
            noSec = false;
            otr = false;
        }
    }
    public void secNoSec(){
        if(Secultura.compareTo("Si")==0){
            sec = true;
            noSec = false;
            otr = false;
        } else if (Secultura.compareTo("No")==0){
            noSec = true;
            sec = false;
            otr = false;
        } else {
            sec = false;
            noSec = false;
            otr = false;
        }
    }
    public void nacComOtr(){
        
        if(otro.compareTo("Nac")==0){
            otr = false;
        } else if (otro.compareTo("Com")==0){
            otr = false;
        } else if(otro.compareTo("Otr")==0){
            otr = true;
        } else {
            otr = false;
        }
    }
    
    public void nuevoTipo() {
        System.out.println("tentro");
        System.out.println("valores" + tipoFor + tipoArte + foroinf);
        
        tipoSelect = null;
    }
    
    public void nuevoCol() {
        System.out.println("tentro");
        System.out.println("valores" + digital + tipoColFondo + colfon);
        EspacioColeccio newEspa = new EspacioColeccio();
        newEspa.setDigitalizada(digital);
        lstCol.add(newEspa);
        
    }
    
    public void nuevoInf() {
        try {
            System.out.println("tentro");
            System.out.println("valores" + inf + capacidad + unidad);
            EspacioculturalInfraestructura newEspaInf = new EspacioculturalInfraestructura();
            newEspaInf.setCapacidad(capacidad);
            newEspaInf.setUnidad(unidad);
            
            lstInf.add(newEspaInf);
        } catch (Exception ex) {
            Logger.getLogger(FichaEspacioCulturaBean.class.getName()).log(Level.SEVERE, null, ex);
        }
        
    }
}
